﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace DingTalk.Models
{
    public class SchemaContentModel
    {
        public Result result { get; set; }
    }


    public class StatFieldItem
    {
        /// <summary>
        /// 
        /// </summary>
        public string id { get; set; }
        /// <summary>
        /// 单行输入框
        /// </summary>
        public string label { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string upper { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string unit { get; set; }
    }

    public class ObjOptionsItem
    {
        /// <summary>
        /// 
        /// </summary>
        public string value { get; set; }
    }

    public class Push
    {
        /// <summary>
        /// 
        /// </summary>
        public int pushSwitch { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string pushTag { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public int attendanceRule { get; set; }
    }

    public class ChildFieldVisible
    {
        /// <summary>
        /// 
        /// </summary>
        public string key { get; set; }
    }

    public class HolidayOptionsItem
    {
        /// <summary>
        /// 
        /// </summary>
        public string key { get; set; }
    }

    public class TargetsItem
    {
        /// <summary>
        /// 
        /// </summary>
        public string fieldId { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string behavior { get; set; }
    }

    public class BehaviorLinkageItem
    {
        /// <summary>
        /// 
        /// </summary>
        public string value { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public List<TargetsItem> targets { get; set; }
    }

    public class ItemsProps
    {
        /// <summary>
        /// 
        /// </summary>
        public string id { get; set; }
        /// <summary>
        /// 单行输入框
        /// </summary>
        public string label { get; set; }
        /// <summary>
        /// 我的单行输入框
        /// </summary>
        public string bizAlias { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string required { get; set; }
        /// <summary>
        /// 请输入文字
        /// </summary>
        public string placeholder { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public List<string> options { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public int appId { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string durationLabel { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public int pushToCalendar { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string align { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public List<StatFieldItem> statField { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string hideLabel { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public List<ObjOptionsItem> objOptions { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string format { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string pushToAttendance { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string labelEditableFreeze { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public Push push { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string commonBizType { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string requiredEditableFreeze { get; set; }
        /// <summary>
        /// 天
        /// </summary>
        public string unit { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string extract { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string link { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string payEnable { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string hidden { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string bizType { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string staffStatusEnabled { get; set; }
        /// <summary>
        /// 添加
        /// </summary>
        public string actionName { get; set; }
        /// <summary>
        /// 请假
        /// </summary>
        public string attendTypeLabel { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public ChildFieldVisible childFieldVisible { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string notPrint { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string verticalPrint { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string duration { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public List<HolidayOptionsItem> holidayOptions { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string useCalendar { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string hiddenInApprovalDetail { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string disabled { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string asyncCondition { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public List<BehaviorLinkageItem> behaviorLinkage { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string showAttendOptions { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string notUpper { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string fieldsInfo { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string eSign { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string mainTitle { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string formula { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public int choice { get; set; }
    }

    public class ChildrenItemProps
    {
        /// <summary>
        /// 
        /// </summary>
        public string id { get; set; }
        /// <summary>
        /// 姓名
        /// </summary>
        public string label { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string bizAlias { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string required { get; set; }
    }

    public class ChildrenItem
    {
        /// <summary>
        /// 
        /// </summary>
        public string componentName { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public ChildrenItemProps props { get; set; }
    }

    public class ItemsItem
    {
        /// <summary>
        /// 
        /// </summary>
        public string componentName { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public ItemsProps props { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public List<ChildrenItem> children { get; set; }
    }

    public class SchemaContent
    {
        /// <summary>
        /// 示例模板
        /// </summary>
        public string title { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string icon { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public List<ItemsItem> items { get; set; }
    }

    public class Result
    {
        /// <summary>
        /// 
        /// </summary>
        public string creatorUserId { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string appUuid { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string formCode { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string formUuid { get; set; }
        /// <summary>
        /// 示例模板
        /// </summary>
        public string name { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string memo { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string ownerIdType { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public SchemaContent schemaContent { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string icon { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public int appType { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string bizType { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public int engineType { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string status { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public int listOrder { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string customSetting { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string procType { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string visibleRange { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string gmtCreate { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string gmtModified { get; set; }
    }
}


